Managing configuration changes in a data processing system with a distributed architecture is a time consuming activity, particularly when the system includes a high number of processing entities on which new configurations must be enforced. A typical example is that of a large network with thousands of computers, where software products are periodically upgraded in order to be abreast of the information technology development.
Software distribution applications have been proposed in the last years to assist a system administrator in efficiently managing deployment of software products from a central site of the network. A software distribution application controls building of packages, which include instructions specifying the actions to be carried out on target computers for installing or removing selected software products; each package further embeds a copy of the software products to be installed. The package is transmitted to the computers, and the corresponding instructions are interpreted so as to enforce the desired software configuration.
However, this solution is not completely satisfactory. Particularly, the administrator is faced with the burden of manually defining the packages to be distributed to the computers. As a consequence, the process of managing the configuration changes is complex and error-prone, particularly if the network includes a high number of computers.
The drawbacks of the solutions known in the art are more acute when the configuration process involves a software application that is distributed across the network. Typically, the distributed application includes different software components for corresponding computers of the network. As a consequence, the task of installing and upgrading the distributed application is very difficult (because of the need to tackle the problem as a whole, without the possibility of addressing a single computer at the time). A typical example is that of a software infrastructure used to manage several aspects of the life cycle of the network itself.
The above-described problems are exacerbated when multiple products are shipped as a single suite; moreover, additional difficulties arise when the network has a complex topology.